<template>
    <div>

    </div>
</template>

<script setup>
/** 
 *  回顾
 *      watch
 *          watch(监听的数据,()=>{})
 *      watchEffect
 *          watchEffect(()=>{})
 * 
 *      ref获取DOM或者是组件实例
 *          <标签 ref="ref1" />
 *          setup 
 *              const ref1 = ref(null)
 * 
 *      组件化
 *          传值
 *              父传子
 *                  自定义属性传递给子组件
 *                  definedProps
 *              子传父
 *                  @自定义事件="方法"
 *                  const emit = definedEmits
 *                  emit(自定义事件,参数)
 *              v-model
 *                  <组件 v-model="响应式数据" />
 *                      翻译成：
 *                          <组件 :modelValue="数据" @update:modelValue="数据 = 参数"
 *                  definedProps(["modelValue"])
 *                  definedEmits(["update:modelValue"])
 * 
 *                  <input @input="$emit("update:modelValue",$event.target.value)"
 *              provide/inject
 *                  在前辈组件上 使用 provide 注入数据
 *                  import { provide } from 'vue'
 *                  const key= Symbol()
 *                  provide(key,value)
 * 
 *                  在任意的后代组件里面使用 inject 获取
 *                  import { inject } from 'vue'
 *                  const val = inject(key)
 *              mixin
 *                  app.mixin({})
 *              中央事件总线在vue3不可用
 *                  Vue3的实例对象，已经移除了 $on 和 $emit 方法
 *              slot
 *                  作用域插槽
 *                      <slot :属性名="组件内部的数据" ></slot>
 *              
 *                  <组件 >
 *                      <template #name="slot身上的所有的属性的集合"></template>
 *                      <template #name="{属性名}"></template>
 *                  </组件>
 * 
 * 
 *  自定义指令
 *      全局
 *          app.directive("指令名称",{
 *              生命周期(el,binding){
 *              }
 *          })
 *      局部
 *          setup
 *              const V指令 = { 生命周期(){}}
 * 
 *  Telport 组件
 *      把一个组件渲染到一个指定的结构上
 *          <telport to="选择器">组件</telport>
 */
</script>

<style scoped>

</style>